<?php
/**
 * CakeCMS后台 -  品牌分类model
 * 
 * @author zzdboy
 * @version 1.0
 */
class BrandCate extends AppModel {
	public $name = 'BrandCate';
	public $useTable = 'brand_cate';
	public $primaryKey = 'id';
	
	/**
	 * 根据用户ID获取 商品分类相关信息
	 *
	 * @param int $id        	
	 */
	public function GetBrandCateByID($id) {
		$BrandCateInfo = $this->find ( 'first', array (
				'conditions' => array (
						'id' => $id 
				) 
		) );
		return $BrandCateInfo;
	}
	
	/**
	 * 添加 商品分类
	 *
	 * @param array $data        	
	 */
	public function add($data) {
		if (! is_array ( $data )) {
			return false;
		}
		$this->create ();
		if ($this->save ( $data )) {
			return true;
		}
		return false;
	}
	
	/**
	 * 编辑 商品分类
	 *
	 * @param array $data        	
	 */
	public function edit($data) {
		if (! is_array ( $data )) {
			return false;
		}
		
		if ($this->save ( $data )) {
			return true;
		}
		return false;
	}
	
	/**
	 * 删除 商品分类
	 *
	 * @param int $id        	
	 */
	public function del($id) {
		// 删除下的的子栏目
		$this->delete_child ( $id );
		
		if ($this->delete ( $id )) {
			return true;
		}
		return false;
	}
	
	/**
	 * 递归删除栏目
	 *
	 * @param int $id        	
	 */
	private function delete_child($id) {
		$id = intval ( $id );
		if (empty ( $id )) {
			return false;
		}
		
		$list = $this->find ( 'all', array (
				'conditions' => array (
						'parentid' => $id 
				) 
		) );
		if (is_array ( $list )) {
			foreach ( $list as $val ) {
				if (! empty ( $val ['BrandCate'] ['id'] )) {
					$this->delete_child ( $val ['BrandCate'] ['id'] );
					$this->delete ( $val ['BrandCate'] ['id'] );
				}
			}
			return true;
		}
	}
	
	/**
	 * 获取 商品分类深度
	 *
	 * @param int $id        	
	 * @param array $array        	
	 * @param int $i        	
	 */
	public function get_level($id, $array = array(), $i = 0) {
		foreach ( $array as $n => $value ) {
			if ($value ['BrandCate'] ['id'] == $id) {
				if ($value ['BrandCate'] ['parentid'] == '0')
					return $i;
				$i ++;
				return $this->get_level ( $value ['BrandCate'] ['parentid'], $array, $i );
			}
		}
	}
}
?>